## Сессии

В этой практике необходимо реализовать систему аутентификации. В нашем случае она состоит из таких маршрутов:

* GET */sessions/build* — форма логина, в которой пользователь вводит имя и пароль
* POST */sessions* для создания сессии
* POST */sessions/delete* для удаления сессии

После выполнения каждого из этих действий происходит редирект на главную страницу.

### Ссылки

* [Методы работы с контекстом](https://javalin.io/documentation#context)

### src/main/java/exercise/controller/SessionsController.java

Реализуйте обработчики для указанных выше маршрутов. Для работы с пользователями используйте репозиторий `UsersRepository`.

Список пользователей с именами и паролями можно посмотреть в классе `Generator`. Обратите внимание, что пароль хранится в зашифрованном виде. Это значит, что при сравнении необходимо шифровать пароль от пользователя и сравнивать хеши.

Если имя или пароль неверные, то снова отрисовывается форма логина и показывается сообщение *Wrong username or password*.

### src/main/java/exercise/App.java

Опишите роутинг для указанных выше обработчиков. Используйте именованные маршруты.

В этом задании имена маршрутов уже описаны в классе `NamedRoutes`.

### src/main/jte/build.jte

Реализуйте шаблон с формой логина. Для входа в систему мы должны запрашивать у пользователя его имя и пароль.

### src/main/jte/index.jte

Реализуйте шаблон главной страницы:

* Если пользователь не аутентифицирован, то ему показывается ссылка на страницу логина с текстом *Войти*
* Если аутентифицирован, то его имя и форма с кнопкой *Выйти*
